/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package inteligenciaartificial;

import java.util.EnumMap;
import java.util.Map;

/**
 *
 * @author Fer
 */
public class Defaults {
    
    //valores por defecto para restricciones de materia prima usada por productos
    public static final Intervalo[] intervalosProducto= new Intervalo[36];
    
    //valores por defecto para la utilidad de cada producto
    public static final int[] utilidades = new int[4];
    
    //valor por defecto para cantidad de generaciones maxima
    public static final int cantidadGeneraciones= 1000;
    
    //valor por defecto para numero de individuos por generacion
     public static final int totalPoblacion= 1000;
    
    //porcentaje de aceptacion de individuo
     public static final double porcentajeDeAceptacion= 0.50;
     
     //numero de generaciones maxima sin cambiar la utilidad maxima
     public static final int objectivoGeneraciones= 300;
     
    //valores por defecto parametros mutador
    public static final double pm= 0.1;
    public static final double pM= 0.2;
    public static final double lambda= 0.001;
     
    public static final Map <Individuo.Operador,Integer> algoritmosGeneticos= new EnumMap<Individuo.Operador,Integer>(Individuo.Operador.class); 
     
    public static void inicializar(){
       
                //valres por defecto para restricciones de materia prima usada por productos
		intervalosProducto[1]= new Intervalo(80,95);
		intervalosProducto[2]= new Intervalo(0,0);
		intervalosProducto[3]= new Intervalo(44,65);
		intervalosProducto[4]= new Intervalo(72,88);
		intervalosProducto[5]= new Intervalo(0,0);
		intervalosProducto[6]= new Intervalo(55,77);
		intervalosProducto[7]= new Intervalo(22,50);
		intervalosProducto[8]= new Intervalo(0,0);
                
		intervalosProducto[10]= new Intervalo(15,35);
		intervalosProducto[11]= new Intervalo(49,55);
		intervalosProducto[12]= new Intervalo(12,28);
		intervalosProducto[13]= new Intervalo(0,0);
		intervalosProducto[14]= new Intervalo(50,60);
		intervalosProducto[15]= new Intervalo(21,44);
		intervalosProducto[16]= new Intervalo(0,00);
		intervalosProducto[17]= new Intervalo(70,91);
		
		intervalosProducto[19]= new Intervalo(0,0);
		intervalosProducto[20]= new Intervalo(84,99);
		intervalosProducto[21]= new Intervalo(0,0);
		intervalosProducto[22]= new Intervalo(34,55);
		intervalosProducto[23]= new Intervalo(62,78);
		intervalosProducto[24]= new Intervalo(62,70);
		intervalosProducto[25]= new Intervalo(43,65);
		intervalosProducto[26]= new Intervalo(0,0);
		
		intervalosProducto[28]= new Intervalo(41,55);
		intervalosProducto[29]= new Intervalo(0,0);
		intervalosProducto[30]= new Intervalo(0,0);
		intervalosProducto[31]= new Intervalo(74,95);
		intervalosProducto[32]= new Intervalo(24,35);
		intervalosProducto[33]= new Intervalo(82,88);
		intervalosProducto[34]= new Intervalo(55,74);
		intervalosProducto[35]= new Intervalo(52,78);
                
                //valores por defecto para utilidades
                utilidades[0]=90;
                utilidades[1]=115;
                utilidades[2]=120;
                utilidades[3]=100;

                //valores por defecto de algoritmos geneticos a aplicar         
                Mutador.inicializar(Defaults.pm,Defaults.pM,Defaults.lambda);

                algoritmosGeneticos.put(Individuo.Operador.SeleccionElitista, 10);
                algoritmosGeneticos.put(Individuo.Operador.CruzaBinomial, 60);
                algoritmosGeneticos.put(Individuo.Operador.MutacionPorTempDescendente, 30);
                 
    }
    
}
